package com.mall.module.system.domain.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
 * 部门树节点VO
 */
@ApiModel("部门树节点数据")
@Data
@Builder
public class DeptTreeNodeVO {

    @ApiModelProperty(value = "部门ID", example = "1")
    private Long id;

    @ApiModelProperty(value = "部门名称", example = "技术部")
    private String name;

    @ApiModelProperty(value = "父部门ID", example = "0")
    private Long parentId;

    @ApiModelProperty(value = "显示顺序", example = "1")
    private Integer orderNum;

    @ApiModelProperty(value = "部门编码", example = "TECH")
    private String deptCode;

    @ApiModelProperty(value = "部门类型", example = "2", notes = "1:公司, 2:部门, 3:小组")
    private Integer deptType;

    @ApiModelProperty(value = "部门类型名称", example = "部门")
    private String deptTypeName;

    @ApiModelProperty(value = "部门负责人ID", example = "1")
    private Long leaderId;

    @ApiModelProperty(value = "部门负责人姓名", example = "张三")
    private String leaderName;

    @ApiModelProperty(value = "状态", example = "1", notes = "0:禁用, 1:启用")
    private Integer status;

    @ApiModelProperty(value = "状态名称", example = "启用")
    private String statusName;

    @ApiModelProperty(value = "用户数量", example = "10")
    private Integer userCount;

    @ApiModelProperty(value = "部门层级", example = "2")
    private Integer level;

    @ApiModelProperty(value = "部门路径", example = "总公司/技术部")
    private String deptPath;

    @ApiModelProperty(value = "是否叶子节点", example = "false")
    private Boolean isLeaf;

    @ApiModelProperty(value = "子部门列表")
    private List<DeptTreeNodeVO> children;
} 